package tool

import (
	"fmt"
	"github.com/gin-gonic/gin"
)

// 缓存装饰器
func CacheDecorator(h gin.HandlerFunc, param string, redKeyPattern string, empty interface{}) gin.HandlerFunc {
	return func(context *gin.Context) {
		// 取得相应的值
		getID := context.Param(param)                 //获得Id值
		redisKey := fmt.Sprintf(redKeyPattern, getID) //拼接字符串 获得最后的 键
		// 利用redis判断
		fmt.Println("")
		fmt.Println(redisKey)
		rssult := RediStore.Get(redisKey,false)
		if rssult ==""{
			// 值不存在  调用现有方法
			fmt.Println("值不存在")
			h(context)
		}else {
			// 值存在    直接将值传递前端
			fmt.Println("值存在")
			Success(context,rssult)
		}
	}
}
